package com.itheima.test14;

/**
 * @Author:gy
 * @Date: 2025/09/01 17:17
 * @Description:
 */
public class Consumer extends Thread {
    /*
                 消费者:实现Runable接口,重写run();线程任务
                 判断是否有包子,决定线程任务是否执行
                 判断没有包子,就进入等待状态,如果有包子,直接干
                 消费为包子,修改标记,唤醒生产者做包子
                 1.写个死循环
                 2.加锁
                 3.判断 包子有没有吃完 结束
                 4.判断 包子没有吃完  继续吃
    * */
    @Override
    public void run() {
       while(true){
           synchronized (Desk.lock) {
               //包子已经吃完了
               if (Desk.count == 0){
                   break;
               }else{
                   //没有吃完 判断桌子有没有包子
                   if(Desk.flag){
                       //有包子
                       System.out.println("小帅正在吃第"+(11-Desk.count)+"个包子");
                       Desk.flag = false;
                       Desk.lock.notifyAll();
                       Desk.count--;
                   }else{
                      //没包子 就等待
                       try {
                           Desk.lock.wait();
                       } catch (InterruptedException e) {
                           throw new RuntimeException(e);
                       }
                   }
               }
           }
       }
    }
}
